/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package controller;

import java.sql.SQLException;
import java.util.Date;
import java.util.LinkedList;
import model.dto.RegistroSaidaDTO;
import model.exception.MissingIdException;
import model.exception.NoChangesOnUpdateException;
import model.exception.NotNullFieldsException;
import model.handler.RegistroSaidaHandler;

/**
 *
 * @author Gabriel
 */
public class RegistroSaidaController {

    RegistroSaidaHandler registroSaidaHandler;

    public RegistroSaidaController() throws SQLException, ClassNotFoundException {
        registroSaidaHandler = new RegistroSaidaHandler();
    }
    
    public LinkedList<RegistroSaidaDTO> getTodosRegistrosSaida() throws SQLException {
        return registroSaidaHandler.getTodosRegistrosSaida();
    }

    public LinkedList<RegistroSaidaDTO> pesquisaRegistroSaida(Integer id,
                                                              Date dataSaida,
                                                              Integer quantidade,
                                                              String destino,
                                                              String observacao) throws SQLException {
        return registroSaidaHandler.pesquisaRegistroSaida(id, dataSaida, quantidade, destino, observacao);

    }

    public void cadastraRegistroSaida(RegistroSaidaDTO registroSaidaDTO) throws SQLException, NotNullFieldsException {
        registroSaidaHandler.cadastraRegistroSaida(registroSaidaDTO);
    }

    public void atualizaRegistroSaida(RegistroSaidaDTO registroSaidaDTO,
                                      boolean atualizaData,
                                      boolean atualizaQuantidade,
                                      boolean atualizaDestino,
                                      boolean atualizaObservacao) throws SQLException, NotNullFieldsException, NoChangesOnUpdateException, MissingIdException {
        registroSaidaHandler.atualizaRegistroSaida(registroSaidaDTO, atualizaData, atualizaQuantidade, atualizaDestino, atualizaObservacao);
    }

}
